package com.sxpi.zixun.mapper;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sxpi.zixun.pojo.Banner;
import com.sxpi.zixun.vo.BannerUserVo;
import com.sxpi.zixun.vo.BannerVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;

/**
 * @Author: 董伟豪
 * @Date: 2022/6/29 19:17
 */
public interface BannerMapper extends BaseMapper<Banner> {

    List<Banner> findBanners(@Param("bannerVo") BannerVo bannerVo);

    /**
     * 查询轮播图和对应的用户信息
     * @param bannerVo
     * @return
     */
    List<Map<String,Object>> findBannerUsers(@Param("bannerVo") BannerVo bannerVo);

    /**
     * 查询轮播图和对应的用户信息
     * @param bannerVo
     * @return
     */
    List<BannerUserVo> findBannerUsersVo(@Param("bannerVo") BannerVo bannerVo);

    /**
     * 源码中的写法
     * 根据 Wrapper 条件，查询全部记录（并翻页）
     *
     * @param page         分页查询条件
     * @param queryWrapper 实体对象封装操作类
     */
    // <E extends IPage<Map<String, Object>>> E selectMapsPage(E page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
    /**
     * 多表关联分页写法
     * @param page
     * @param queryWrapper
     * @return
     */
    Page<BannerUserVo> findBannerUsersVoPages(Page page, @Param(Constants.WRAPPER) Wrapper<BannerVo> queryWrapper);

}
